Antworten auf deine Fragen:
Neues Thema erstellen

fehler bei linkliste script

Rakete

Nicht mehr ganz neu hier

AW: fehler bei linkliste script

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

Die Funktion mysql_num_rows() gibt die Anzahl Datensätze in einem Suchergebnis zurück. Wenn du alle Zeilen abfragst, liefert die Funktion die Anzahl aller Datensätze und wenn du deine Abfrage einschränkst, dann liefert sie nur bestimmte ... ;)


Das war eigentlich der Beleg, dass while($ds = mysql_fetch_object($sql)) zulässig ist.

Zweifellos ...
Allerdings meinte ich nicht die Abbruchbedingung, sondern den Körper der While-Schleife. Hier werden den Variablen $link2 und $beschreibung2 bei jedem Durchlauf neue Werte zugewiesen, d.h. das If-Konstrukt, das nach der Schleife kommt, vergleicht nur mit der letzten Zeile des Ergebnisses.

Wenn auf diese Weise herausgefunden werden soll, ob ein Link bereits existiert, muss mit jeder Zeile verglichen werden.

Effektiver wäre meiner Ansicht aber, nach dem gegebenen Link direkt zu suchen und dann nur abzufragen, ob die Ergebnismenge>0 ist.
 

kannaum

Keine Ahnung

AW: fehler bei linkliste script

Die Funktion mysql_num_rows() gibt die Anzahl Datensätze in einem Suchergebnis zurück. Wenn du alle Zeilen abfragst, liefert die Funktion die Anzahl aller Datensätze und wenn du deine Abfrage einschränkst, dann liefert sie nur bestimmte ... ;)




Zweifellos ...
Allerdings meinte ich nicht die Abbruchbedingung, sondern den Körper der While-Schleife. Hier werden den Variablen $link2 und $beschreibung2 bei jedem Durchlauf neue Werte zugewiesen, d.h. das If-Konstrukt, das nach der Schleife kommt, vergleicht nur mit der letzten Zeile des Ergebnisses.

Wenn auf diese Weise herausgefunden werden soll, ob ein Link bereits existiert, muss mit jeder Zeile verglichen werden.

Effektiver wäre meiner Ansicht aber, nach dem gegebenen Link direkt zu suchen und dann nur abzufragen, ob die Ergebnismenge>0 ist.

sory ich habe da gerade gar ncihts verstanden
könntest du ibtte meinen code so umändern dass es funktionieren sollte und dann verstehe ich dass vielleciht

mfg
 

stroyer

Aktives Mitglied

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?

Das wird WHERE 1=1 heißen.
 

j0shua

Scripter

AW: fehler bei linkliste script

Kannst du auch weg lassen. Das ist einfach ein Statement das TRUE zurück liefert.
Wenn du keine WHERE Bedingung hast wird automatisch alles genommen.
 

stroyer

Aktives Mitglied

AW: fehler bei linkliste script

Du kannst das ganze WHERE rausnehmen; kommt aufs gleiche. WHERE 1=1 ist nur ein Platzhalter für spätere Einschränkungen.
 

kannaum

Keine Ahnung

AW: fehler bei linkliste script

aso
das habe ich auch schon gemacht
aber was hat das jetzt mit
Zweifellos ...
Allerdings meinte ich nicht die Abbruchbedingung, sondern den Körper der While-Schleife. Hier werden den Variablen $link2 und $beschreibung2 bei jedem Durchlauf neue Werte zugewiesen, d.h. das If-Konstrukt, das nach der Schleife kommt, vergleicht nur mit der letzten Zeile des Ergebnisses.

Wenn auf diese Weise herausgefunden werden soll, ob ein Link bereits existiert, muss mit jeder Zeile verglichen werden.

Effektiver wäre meiner Ansicht aber, nach dem gegebenen Link direkt zu suchen und dann nur abzufragen, ob die Ergebnismenge>0 ist.
aufsich?

mfg
 

kannaum

Keine Ahnung

AW: fehler bei linkliste script

ok habe gestern am abend den code verbessert
ich habe eine andere methode gewählt um zu überprüfen ob der link schon vorhanden ist

hier sind wieder mal die 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" />
 <style type="text/css">
 #eintragen {
 padding-top: 10px;
 color: #FFFFFF;
 text-align: center;
 height: 100px;
 width: 500px;
 background-color: black;
 }
 </style>
</head>
<body>
<table border="1" style="width: 500px;">
<tr>
 <td><b>Link</b></td>
 <td><b>Beschreibung</b></td>
 </tr>
 <?
$gesamt = mysql_num_rows(mysql_query("SELECT * FROM linkliste"));
 $intervall = 20;
  $start = $_GET['s'];
if (($start + $intervall) > $gesamt) {
$intervall = $gesamt - $start;
$mehr = "0";
}
else {
$mehr = $start + $intervall;
}
 $query = "SELECT * FROM linkliste LIMIT $start, $intervall";
 $sql = mysql_query($query);
?>
 <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($sql)) {
 $link = $ds->link;
 $beschreibung = $ds->beschreibung;
 echo '<tr>';
 echo '<td><a href=\"$link\">$link</a></td>';
 echo '<td>$beschreibung</td>';
 echo '</tr>';
 }
 mysql_close($dz);
   ?>
 </table>
 <div id="eintragen">
<form action="auswertung.php" method="post">
Ihr Link:
 <input name="link" value="http://www." style="width: 480px;"/>
 Ihr Beschreibung:
  <input name="beschreibung"  style="width: 435px;"/>
  <input type="submit" value="OK">
   </form>
   </div>
</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;
 }
query2 = "SELECT link FROM linkliste WHERE link LIKE $link"; 
 sql2 = mysql_query($query2);
 while ($ds = mysql_fetch_object($sql2)) {
 $link3 = $ds->link;
 }
 foreach($link as $link3) {
 if ($link != $link3) {
 echo 'Ihr Link ist leider schon vorhanden!';
 }
 }
if ($link == '' or $beschreibung == '') {
echo 'Sie müssen alle Felder ausfüllen!<br />';
echo '<a href="index.php">Zurück....</a>';
}
else {
$query3 = "INSERT INTO linkliste (link, beschreibung) VALUES ('$link', '$beschreibung')";
mysql_query($query3);
mysql_close($dz);
echo 'Ihr Link wurde erfolgreich eingertragen!<br />';
echo '<a href="index.php">Zurück....</a>';
}?>
</body>
</html>

aber es ist trotzdem noch ein oder mehrere fehler drin
und das ausgabescript funktioniert nun schon ganz normal nur dass immer nur link und beschreibung dort stehen und nciht werte aus der db

mfg
 

stroyer

Aktives Mitglied

AW: fehler bei linkliste script

PHP:
 echo '<td><a href=\"$link\">$link</a></td>';
 echo '<td>$beschreibung</td>';
Da braucht es doppelte Anführungszeichen:
PHP:
 echo "<td><a href=\"$link\">$link</a></td>";
 echo "<td>$beschreibung</td>";
 

kannaum

Keine Ahnung

AW: fehler bei linkliste script

JUHUUUUUUUUUUUUUUUU!!!!!!!!!
es geht endlich!!!
aber hast du vielleciht aucn noch eine lösung für das auswertungsscript?
da steht dass ein fehler auf zeile 25 ist

mfg
 

stroyer

Aktives Mitglied

AW: fehler bei linkliste script

PHP:
if ($link == '' or $beschreibung == '')
or ist ||, also
PHP:
if($link==''||$beschreibung=='')
 

stroyer

Aktives Mitglied

AW: fehler bei linkliste script

Hab gesehen; das WAR Zeile 25. Jetzt ist es folgendes:
PHP:
query2 = "SELECT link FROM linkliste WHERE link LIKE $link";
Das ist ein Fehler im MySQL-Syntax; Ich gehe davon aus, dass link ein String sein wird.
PHP:
$query2 = "SELECT link FROM linkliste WHERE link LIKE '$link'";
Um $link einfache Anführungszeichen einfügen.
 
Zuletzt bearbeitet:

stroyer

Aktives Mitglied

AW: fehler bei linkliste script

PHP:
query2 = "SELECT link FROM linkliste WHERE link LIKE '$link'";  <---Dollarzeichen fehlt!
$query2 = "SELECT link FROM linkliste WHERE link LIKE '$link'";
in der Zeile darauf ebenfalls.


PHP:
if ($link == '' or $beschreibung == '') {
echo 'Sie müssen alle Felder ausfüllen!<br />';
echo '<a href="index.php">Zurück....</a>';
}
|| statt or

PHP:
 foreach($link as $link3) {
 if ($link != $link3) {
 echo 'Ihr Link ist leider schon vorhanden!';
 }
 }
In der Zeile vor dem Codeausschnitt wird link3 immer ein String zugewiesen. Wahrscheinlich sollte er in ein Array hinein. Weiters ist link kein Array und in selbst wenn könnte ich in der zeile darauf nicht das array mit einem string aus diesem vergleichen.
 
Zuletzt bearbeitet:

kannaum

Keine Ahnung

AW: fehler bei linkliste script

ok jetzt ist der fehler weg
aber jetzt wird gesagt dass noch ein fehler bei der foreach schleife ist

mfg
 

stroyer

Aktives Mitglied

AW: fehler bei linkliste script

Die foreach Schleife ist ein großer Denkfehler.
Wozu ist zB folgendes:
PHP:
 while ($ds = mysql_fetch_object($sql)) {
 $link2 = $ds->link;
 $beschreibung2 = $ds->beschreibung;
 }
da werden link und beschreibung jedes mal in zwei variablen geschrieben. Beim nächsten Durchlauf werden sie einfach überschrieben.
 
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

Neueste Themen & Antworten

Flatrate für Tutorials, Assets, Vorlagen

Zurzeit aktive Besucher

Keine Mitglieder online.

Statistik des Forums

Themen
118.616
Beiträge
1.538.358
Mitglieder
67.536
Neuestes Mitglied
QuestionMark
Oben