Antworten auf deine Fragen:
Neues Thema erstellen

fehler bei linkliste script

kannaum

Keine Ahnung

hi,

ich bin gerade dabei eine linkliste zu programmieren
aber leider gibt es noch ein paar fehler aber ich kann sie leider nciht finden
hier der code vom script für das anzeogen der linkliste:
Code:
<?
$host = "localhost";
$user = "root";
$pass = "";
$database = "linkliste";
$dz = mysql_connect($host, $user, $pass);
mysql_select_db($database, $dz);
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
  <meta content="text/html; charset=ISO-8859-1"
 http-equiv="content-type" />[FONT=Arial][SIZE=4]
[SIZE=3]</head>[/SIZE][/SIZE][/FONT]
<body>
<table border="1">
<tr>
 <td><b>Link</b></td>
 <td><b>Beschreibung</b></td>
 </tr>
<tr>
<form action="auswertung.php" method="post">
  <td><input name="link" style="width: 300px;" value="http://www." /></td>
  <td><input name="beschreibung" style="width: 250px; margin-top: 3px;" />
  <input type="submit" value="OK"></td>
 </form>
 </tr>
 <?
  $query = "SELECT COUNT(*) FROM linkliste";
$sql = mysql_query($query);
$gesamt = mysql_result($sql, 0);
$start = $_GET['s'];
$intervall = 20;
if (($start + $intervall) > $gesamt) {
$intervall = $gesamt - $start;
$mehr = "0";
}
else {
$mehr = $start + $intervall;
}
?>
 <tr>
 <td colspan="2">
 <b>Die Linkliste enth&auml;lt <?= $gesamt ?> Links, dies sind die Links Nummer <?= $start ?> bis <?= $start + $intervall - 1 ?><br />
 <a href="index.php?s=<?=$mehr;?>">Weiter</a></b>
 </td>
 </tr>
<?
$query2 = "SELECT COUNT(*) FROM linkliste LIMIT $start,$intervall";
$sql2 = mysql_query($query2);
 while ($ds = mysql_fetch_object($sql2)) {
 $link = $ds->link;
 $beschreibung = $ds->beschreibung;
 echo '<tr>';
 echo '<td><a href=\"$link\">$link</a></td>';
 echo '<td>$beschreibung</td>';
 echo '</tr>';
 echo '</table>';
 }
 mysql_close($dz);
 ?>
</body>
</html>

und das ist der code der die links in die db schreiben soll:

Code:
<?
$host = "localhost";
$user = "root";
$pass = "";
$database = "linkliste";
$dz = mysql_connect($host, $user, $pass);
mysql_select_db($database, $dz);
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
  <meta content="text/html; charset=ISO-8859-1"
 http-equiv="content-type" />
<script type="text/javascript">

<!--
setTimeout("self.location.href='index.php'",5000);
//-->
</script>
</head>
<body>
<?
$link = trim($_POST['link']);
$beschreibung = trim($_POST['beschreibung']);
 $query = "SELECT COUNT(*) FROM linkliste";
$sql = mysql_query($query);
 while ($ds = mysql_fetch_object($sql)) {
 $link2 = $ds->link;
 $beschreibung = $ds->beschreibung;
 }
if ($link == '' or $beschreibung == '') {
echo 'Sie müssen alle Felder ausfüllen!<br />';
echo '<a href="index.php">Zurück....</a>';
} elseif ($link2 = $link) {
echo 'Ihr Link ist leider schon in der Datenbank vorhanden!<br />';
echo '<a href="index.php">Zurück....</a>';
} else {
$query = "INSERT INTO linkliste (link, beschreibung) VALUES ('$link', 'beschreibung')";
mysql_query($query);
mysql_close($dz);
echo 'Ihr Link wurde erfolgreich eingertragen!<br />';
echo 'Sie werden in 5 Sekunden automatisch weitergeleitet!<br />';
echo '<a href="index.php">Keine Lust zu warten....</a>';
}?>
</body>
</html>

mfg
 

Rakete

Nicht mehr ganz neu hier

AW: fehler bei linkliste script

Das denke ich auch.

PHP:
$query2 = "SELECT * FROM linkliste LIMIT $start,$intervall";
$sql2 = mysql_query($query2);
Wenn du so abfragst, bekommst du die Zeilen aus der DB geliefert.

Den ersten Query kannst du dir übrigens sparen, er dienst ja offenbar nur dazu, die Zahl der Datensätze zu bestimmen. Dies erreichst du auch, wenn du die beiden Zeilen oben um die folgende Zeile erweiterst.

PHP:
$gesamt=mysql_num_rows($sql2);
Du solltest den Teil, der die Links in die DB schreiben soll, noch mal komplett überdenken, denn so wird es sicher nicht funktionieren!

  • Schau dir mal deine while-Schleife an, fehlt da nicht ein Vergleich?
  • Auch hier macht es keinen Sinn count(*) abzufragen, besonders dann nicht, wenn es kein WHERE Kriterium gibt.
  • Wenn das INSERT so bleibt, wird später in jeder Zeile in der DB 'beschreibung' stehen, statt dem Inhalt der Variablen.
Btw. Ich persönlich finde automatische Weiterleitungen nach ein paar Sekunden extrem nervig ...
 
Zuletzt bearbeitet:

j0shua

Scripter

AW: fehler bei linkliste script

;-) wollte nicht zuviel verraten...
Der code sieht ziemlich selbst geschrieben aus, und da es jemand lernen will habe ich absichtlich nicht die Lösung komplett gepostet :)
 

kannaum

Keine Ahnung

AW: fehler bei linkliste script

ok dann werde cih mal probieren das ganze umzusetzten

mfg

PS: die weiterleitung ist im moment nur eine "notlösung"
das hätte cih sowieso noch geändert
 

kannaum

Keine Ahnung

AW: fehler bei linkliste script

Das denke ich auch.

PHP:
$query2 = "SELECT * FROM linkliste LIMIT $start,$intervall";
$sql2 = mysql_query($query2);
Wenn du so abfragst, bekommst du die Zeilen aus der DB geliefert.

Den ersten Query kannst du dir übrigens sparen, er dienst ja offenbar nur dazu, die Zahl der Datensätze zu bestimmen. Dies erreichst du auch, wenn du die beiden Zeilen oben um die folgende Zeile erweiterst.

Aber dan werden ja nur bestimmte datensätze gezählt und nicht alle oder?

PHP:
$gesamt=mysql_num_rows($sql2);
Du solltest den Teil, der die Links in die DB schreiben soll, noch mal komplett überdenken, denn so wird es sicher nicht funktionieren!

  • Schau dir mal deine while-Schleife an, fehlt da nicht ein Vergleich?
Ja ber in dem buch in dem ich php gelernt habe steht das genauso drin
außerdem habe ich noch mal bei ein paar tuts im i-net geschaut und da ist die machen dass genauso


  • Auch hier macht es keinen Sinn count(*) abzufragen, besonders dann nicht, wenn es kein WHERE Kriterium gibt.
  • Wenn das INSERT so bleibt, wird später in jeder Zeile in der DB 'beschreibung' stehen, statt dem Inhalt der Variablen.
Das habe ich jetzt geändert
Btw. Ich persönlich finde automatische Weiterleitungen nach ein paar Sekunden extrem nervig ...

mfg kannaum
 

stroyer

Aktives Mitglied

AW: fehler bei linkliste script

Bitte den Code übrigens in PHP-Tags setzen ([ PHP]...[ /PHP])
PHP:
<?
$host = "localhost";
$user = "root";
$pass = "";
$database = "linkliste";
$dz = mysql_connect($host, $user, $pass);
mysql_select_db($database, $dz);
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
  <meta content="text/html; charset=ISO-8859-1"
 http-equiv="content-type" />
<script type="text/javascript">

<!--
setTimeout("self.location.href='index.php'",5000);
//-->
</script>
</head>
<body>
<?
$link = trim($_POST['link']);
$beschreibung = trim($_POST['beschreibung']);
 $query = "SELECT COUNT(*) FROM linkliste";
$sql = mysql_query($query);
 while ($ds = mysql_fetch_object($sql)) {
 $link2 = $ds->link;
 $beschreibung = $ds->beschreibung;
 }
if ($link == '' or $beschreibung == '') {
echo 'Sie müssen alle Felder ausfüllen!<br />';
echo '<a href="index.php">Zurück....</a>';
} elseif ($link2 = $link) {
echo 'Ihr Link ist leider schon in der Datenbank vorhanden!<br />';
echo '<a href="index.php">Zurück....</a>';
} else {
$query = "INSERT INTO linkliste (link, beschreibung) VALUES ('$link', 'beschreibung')";
mysql_query($query);
mysql_close($dz);
echo 'Ihr Link wurde erfolgreich eingertragen!<br />';
echo 'Sie werden in 5 Sekunden automatisch weitergeleitet!<br />';
echo '<a href="index.php">Keine Lust zu warten....</a>';
}?>
</body>
Bezüglich Vergleich in While-Schleife (while($ds = mysql_fetch_object($sql))) musst du wissen, dass die Bedingung vom Typ Boolean gefordert wird.
Wie bei C gibt eine Zuweisung das zugewiesene zurück.
zB.:
Code:
a=1;
b=0;
c=0;
b=c=a;

a==1=>true
b==1=>true
Dementsprechend ist die While-Bedingung gleich
while(mysql_fetch_object($sql))
Für PHP ist alles was 0 o.ä. ist (zB. '') false, der Rest true.
Das heißt die While-Bedingung ist nur so lange true, wie MySQL Daten ungleich null liefert.
Da mysql_fetch ein Array zurück gibt, ist dies nur false, wenn es leer ist.
Und das ist es nur, wenn kein Eintrag mehr zum Auslesen ist.

Wegen nur bestimmten gezählten Datensätze:
Dann nimm eben
PHP:
$gesamt=mysql_num_rows(mysql_query("SELECT * FROM linkliste WHERE 1=1"));
 

kannaum

Keine Ahnung

AW: fehler bei linkliste script

ok danke
das mit den false und true habe ich jetzt verstanden aber wie kann ich dass denn sonst machen?

mfg
 

kannaum

Keine Ahnung

AW: fehler bei linkliste script

aso :uhm:
und warum geht dass dann nicht?

also die fehlermeldung sit folgende wenn ich die index.php aufrufe:
Warning: mysql_fetch_object(): supplied argument us not a valid MySQL result resource in ........ on line 51

mfg
 

stroyer

Aktives Mitglied

AW: fehler bei linkliste script

Wenn
$_GET['s'] nicht definiert ist, ist es $start auch nicht und die MySQL-Abfrage wird ungültig.
Ich würde nebenbei mysql_fetch_array oder mysql_fetch_assoc vorziehen.
 

kannaum

Keine Ahnung

AW: fehler bei linkliste script

ok das habe ich jetzt verstanden
aber wenn ich das mit s=1 aufrufe dann steht da dass das die ljnks 1 bis 20 sind aber es sind keine links zu sehen

mfg
 

j0shua

Scripter

AW: fehler bei linkliste script

aso :uhm:
und warum geht dass dann nicht?

also die fehlermeldung sit folgende wenn ich die index.php aufrufe:
Warning: mysql_fetch_object(): supplied argument us not a valid MySQL result resource in ........ on line 51

mfg

klingt für mich so als ob du versuchst den SQL-String mit mysql_fetch_object abzufragen.

Hinter $sql steht schon mysql_query(...) oder?

Ich weiss in deinem zuerst geposteten code ist das so aber ich bin mir nicht sicher was nun schon alles geändert ist.
 

stroyer

Aktives Mitglied

AW: fehler bei linkliste script

Kleiner Fehler - große Wirkung:
per
$query2 = "SELECT COUNT(*) FROM linkliste LIMIT $start,$intervall";
geht nur der count mit. Du musst das unten korrigieren auf
$query2 = "SELECT * FROM linkliste LIMIT $start,$intervall";
 

kannaum

Keine Ahnung

AW: fehler bei linkliste script

ok ich glaube jetzt sin noch mehr fehler drin
hier jetzt nochmal meine codes:
index.php:
PHP:
<?
$host = "localhost";
$user = "root";
$pass = "";
$database = "linkliste";
$dz = mysql_connect($host, $user, $pass);
mysql_select_db($database, $dz);
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
  <meta content="text/html; charset=ISO-8859-1"
 http-equiv="content-type" />
</head>
<body>
<table border="1">
<tr>
 <td><b>Link</b></td>
 <td><b>Beschreibung</b></td>
 </tr>
<tr>
<form action="auswertung.php" method="post">
  <td><input name="link" style="width: 300px;" value="http://www." /></td>
  <td><input name="beschreibung" style="width: 250px; margin-top: 3px;" />
  <input type="submit" value="OK"></td>
 </form>
 </tr>
 <?
 $query2 = "SELECT * FROM linkliste LIMIT $start, $intervall";
$sql2 = mysql_query($query2);
$gesamt = mysql_num_rows(mysql_query("SELECT * FROM linkliste WHERE 1=l"));
$intervall = 20;
if (($start + $intervall) > $gesamt) {
$intervall = $gesamt - $start;
$mehr = "0";
}
else {
$mehr = $start + $intervall;
}
?>
 <tr>
 <td colspan="2">
 <b>Die Linkliste enth&auml;lt <?= $gesamt ?> Links, dies sind die Links Nummer <?= $start ?> bis <?= $start + $intervall - 1 ?><br />
 <a href="index.php?s=<?=$mehr;?>">Weiter</a></b>
 </td>
 </tr>
<?
 while ($ds = mysql_fetch_object($sql2)) {
 $link = $ds->link;
 $beschreibung = $ds->beschreibung;
 echo '<tr>';
 echo '<td><a href=\"$link\">$link</a></td>';
 echo '<td>$beschreibung</td>';
 echo '</tr>';
 echo '</table>';
 }
 mysql_close($dz);
 ?>
</body>
</html>
auswertung.php
PHP:
<?
$host = "localhost";
$user = "root";
$pass = "";
$database = "linkliste";
$dz = mysql_connect($host, $user, $pass);
mysql_select_db($database, $dz);
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
  <meta content="text/html; charset=ISO-8859-1"
 http-equiv="content-type" />
</head>
<body>
<?
$link = trim($_POST['link']);
$beschreibung = trim($_POST['beschreibung']);
 $query = "SELECT FROM linkliste";
$sql = mysql_query($query);
 while ($ds = mysql_fetch_object($sql)) {
 $link2 = $ds->link;
 $beschreibung2 = $ds->beschreibung;
 }
if ($link == '' or $beschreibung == '') {
echo 'Sie müssen alle Felder ausfüllen!<br />';
echo '<a href="index.php">Zurück....</a>';
} elseif ($link2 = $link) {
echo 'Ihr Link ist leider schon in der Datenbank vorhanden!<br />';
echo '<a href="index.php">Zurück....</a>';
} else {
$query = "INSERT INTO linkliste (link, beschreibung) VALUES ('$link', '$beschreibung')";
mysql_query($query);
mysql_close($dz);
echo 'Ihr Link wurde erfolgreich eingertragen!<br />';
echo '<a href="index.php">Zurück....</a>';
}?>
</body>
</html>
 

stroyer

Aktives Mitglied

AW: fehler bei linkliste script

jetzt ist zB. $start überhaupt nirgends mehr definiert.
Vergleich noch mal deine zwei Versionen. Schadet sicher nicht.
 

j0shua

Scripter

AW: fehler bei linkliste script

In deinem ersten query in auswertung.php fehlt auf jeden Fall der * nach SELECT

Aber sehe grad da sind noch einige Fehler drin.
Am besten wirklich nochmal komplett drüber schaun.
Vor allem das was stroyer geschrieben hat befolgen und schaun dass die verwendeten variablen auch mit etwas gefüllt sind.
Für den ersten query ist es nämlich so, dass LIMIT 0, 0 rauskommt.
 
Zuletzt bearbeitet:

kannaum

Keine Ahnung

AW: fehler bei linkliste script

ok jetzt kommt zumindest irgendwas
wohl nur eine tabellenzeile wo einmal $link steht und auf der anderen seite $beschreibung und darunter ich eine lange zeile wo das ganze noch ein paar mal ohne tabelle steht
aber ich verstehe dass mit dem $gesamt = mysql_num_rows(mysql_query("SELECT * FROM linkliste WHERE 1=l"));
nciht
warum steht da l=1?

 
Bilder bitte hier hochladen und danach über das Bild-Icon (Direktlink vorher kopieren) platzieren.
Antworten auf deine Fragen:
Neues Thema erstellen

Willkommen auf PSD-Tutorials.de

In unseren Foren vernetzt du dich mit anderen Personen, um dich rund um die Themen Fotografie, Grafik, Gestaltung, Bildbearbeitung und 3D auszutauschen. Außerdem schalten wir für dich regelmäßig kostenlose Inhalte frei. Liebe Grüße senden dir die PSD-Gründer Stefan und Matthias Petri aus Waren an der Müritz. Hier erfährst du mehr über uns.

Stefan und Matthias Petri von PSD-Tutorials.de

Nächster neuer Gratisinhalt

03
Stunden
:
:
25
Minuten
:
:
19
Sekunden

Flatrate für Tutorials, Assets, Vorlagen

Statistik des Forums

Themen
118.564
Beiträge
1.538.064
Mitglieder
67.487
Neuestes Mitglied
MichaelSEivy
Oben